/*
 *  Human.h
 *  lab3
 *
 *  Created by Fredrik Gustafsson on 11/17/10.
 *  Copyright 2010 Kungliga Tekniska Högskolan. All rights reserved.
 *
 */

#ifndef _WOK2_HUMAN
#define _WOK2_HUMAN

#include <iostream>
#include <string>
#include <vector>
#include "Environment.h"
#include "Actor.h"
#include "Item.h"
#include "Key.h"

namespace wok2 {
	class Human : public Actor {
		std::vector<Item*> h_items;
		std::string say_string;
	public:
		Human(std::string name, std::string to_say) : Actor(name,100), say_string(to_say) {}
		virtual ~Human();
		virtual std::string type() const;		
		virtual void fight(Actor&);
		virtual void talk_to() const;
		void push_item(Item*);
		Item* pop_item(std::string item_name);
		Item* peek_item(std::string item_name) const;
		bool key_to_environment(Environment* env);
		void print_inventory() const;
		void write_inventory(std::ostream& os) const;
		virtual std::ostream& write_nongeneric(std::ostream& os) const;
	};
}

#endif
